/*
 * @Author: new-wang
 * @Date: 2025-08-19 11:44:38
 * @LastEditors: new-wang
 * @LastEditTime: 2025-08-19 15:31:41
 * @FilePath: \nest-demo\src\config\index.ts
 * @Description: 配置文件 - ConfigModule - load方法加载此文件
 * 1、构建项目时，NestJS 默认不会自动将 .yml 文件编译到 dist 目录中
 * 需要 修改nest-cli.json 添加assets配置项以包含非TS文件 否则 readFileSync 读取不到文件
 * 因为 __dirname 是 dist 绝对路径
 * 2、在运行时动态加载 .yml 文件。使用 js-yaml 或其他库来解析 YAML 文件
 */
import { readFileSync } from 'fs';
import { join } from 'path';
import * as yaml from 'js-yaml'

const configFileNameObj = {
  development: 'dev',
  test: 'test',
  production: 'prod',
};

const env = process.env.NODE_ENV || 'development'; //环境： 通过 cross-env NODE_ENV=development 设置，或添加 .env 文件声明
const configFilePath = join(__dirname, `./${configFileNameObj[env]}.yml`)

export default () => {
  return yaml.load(readFileSync(configFilePath, 'utf8')) as Record<string, any>;
};